package com.auemall.po;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TProductinfoPOExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TProductinfoPOExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNull() {
            addCriterion("category_id is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNotNull() {
            addCriterion("category_id is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdEqualTo(Integer value) {
            addCriterion("category_id =", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotEqualTo(Integer value) {
            addCriterion("category_id <>", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThan(Integer value) {
            addCriterion("category_id >", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("category_id >=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThan(Integer value) {
            addCriterion("category_id <", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThanOrEqualTo(Integer value) {
            addCriterion("category_id <=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIn(List<Integer> values) {
            addCriterion("category_id in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotIn(List<Integer> values) {
            addCriterion("category_id not in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdBetween(Integer value1, Integer value2) {
            addCriterion("category_id between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotBetween(Integer value1, Integer value2) {
            addCriterion("category_id not between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNull() {
            addCriterion("brand_id is null");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNotNull() {
            addCriterion("brand_id is not null");
            return (Criteria) this;
        }

        public Criteria andBrandIdEqualTo(Integer value) {
            addCriterion("brand_id =", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotEqualTo(Integer value) {
            addCriterion("brand_id <>", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThan(Integer value) {
            addCriterion("brand_id >", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("brand_id >=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThan(Integer value) {
            addCriterion("brand_id <", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThanOrEqualTo(Integer value) {
            addCriterion("brand_id <=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIn(List<Integer> values) {
            addCriterion("brand_id in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotIn(List<Integer> values) {
            addCriterion("brand_id not in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdBetween(Integer value1, Integer value2) {
            addCriterion("brand_id between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotBetween(Integer value1, Integer value2) {
            addCriterion("brand_id not between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNull() {
            addCriterion("product_code is null");
            return (Criteria) this;
        }

        public Criteria andProductCodeIsNotNull() {
            addCriterion("product_code is not null");
            return (Criteria) this;
        }

        public Criteria andProductCodeEqualTo(String value) {
            addCriterion("product_code =", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotEqualTo(String value) {
            addCriterion("product_code <>", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThan(String value) {
            addCriterion("product_code >", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_code >=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThan(String value) {
            addCriterion("product_code <", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLessThanOrEqualTo(String value) {
            addCriterion("product_code <=", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeLike(String value) {
            addCriterion("product_code like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotLike(String value) {
            addCriterion("product_code not like", value, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeIn(List<String> values) {
            addCriterion("product_code in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotIn(List<String> values) {
            addCriterion("product_code not in", values, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeBetween(String value1, String value2) {
            addCriterion("product_code between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andProductCodeNotBetween(String value1, String value2) {
            addCriterion("product_code not between", value1, value2, "productCode");
            return (Criteria) this;
        }

        public Criteria andUnitIsNull() {
            addCriterion("unit is null");
            return (Criteria) this;
        }

        public Criteria andUnitIsNotNull() {
            addCriterion("unit is not null");
            return (Criteria) this;
        }

        public Criteria andUnitEqualTo(String value) {
            addCriterion("unit =", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotEqualTo(String value) {
            addCriterion("unit <>", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitGreaterThan(String value) {
            addCriterion("unit >", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitGreaterThanOrEqualTo(String value) {
            addCriterion("unit >=", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLessThan(String value) {
            addCriterion("unit <", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLessThanOrEqualTo(String value) {
            addCriterion("unit <=", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitLike(String value) {
            addCriterion("unit like", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotLike(String value) {
            addCriterion("unit not like", value, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitIn(List<String> values) {
            addCriterion("unit in", values, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotIn(List<String> values) {
            addCriterion("unit not in", values, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitBetween(String value1, String value2) {
            addCriterion("unit between", value1, value2, "unit");
            return (Criteria) this;
        }

        public Criteria andUnitNotBetween(String value1, String value2) {
            addCriterion("unit not between", value1, value2, "unit");
            return (Criteria) this;
        }

        public Criteria andSummaryIsNull() {
            addCriterion("summary is null");
            return (Criteria) this;
        }

        public Criteria andSummaryIsNotNull() {
            addCriterion("summary is not null");
            return (Criteria) this;
        }

        public Criteria andSummaryEqualTo(String value) {
            addCriterion("summary =", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotEqualTo(String value) {
            addCriterion("summary <>", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryGreaterThan(String value) {
            addCriterion("summary >", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryGreaterThanOrEqualTo(String value) {
            addCriterion("summary >=", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryLessThan(String value) {
            addCriterion("summary <", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryLessThanOrEqualTo(String value) {
            addCriterion("summary <=", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryLike(String value) {
            addCriterion("summary like", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotLike(String value) {
            addCriterion("summary not like", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryIn(List<String> values) {
            addCriterion("summary in", values, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotIn(List<String> values) {
            addCriterion("summary not in", values, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryBetween(String value1, String value2) {
            addCriterion("summary between", value1, value2, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotBetween(String value1, String value2) {
            addCriterion("summary not between", value1, value2, "summary");
            return (Criteria) this;
        }

        public Criteria andSaleStatusIsNull() {
            addCriterion("sale_status is null");
            return (Criteria) this;
        }

        public Criteria andSaleStatusIsNotNull() {
            addCriterion("sale_status is not null");
            return (Criteria) this;
        }

        public Criteria andSaleStatusEqualTo(Byte value) {
            addCriterion("sale_status =", value, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusNotEqualTo(Byte value) {
            addCriterion("sale_status <>", value, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusGreaterThan(Byte value) {
            addCriterion("sale_status >", value, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("sale_status >=", value, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusLessThan(Byte value) {
            addCriterion("sale_status <", value, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusLessThanOrEqualTo(Byte value) {
            addCriterion("sale_status <=", value, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusIn(List<Byte> values) {
            addCriterion("sale_status in", values, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusNotIn(List<Byte> values) {
            addCriterion("sale_status not in", values, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusBetween(Byte value1, Byte value2) {
            addCriterion("sale_status between", value1, value2, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andSaleStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("sale_status not between", value1, value2, "saleStatus");
            return (Criteria) this;
        }

        public Criteria andAddTimeIsNull() {
            addCriterion("add_time is null");
            return (Criteria) this;
        }

        public Criteria andAddTimeIsNotNull() {
            addCriterion("add_time is not null");
            return (Criteria) this;
        }

        public Criteria andAddTimeEqualTo(Date value) {
            addCriterion("add_time =", value, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeNotEqualTo(Date value) {
            addCriterion("add_time <>", value, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeGreaterThan(Date value) {
            addCriterion("add_time >", value, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("add_time >=", value, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeLessThan(Date value) {
            addCriterion("add_time <", value, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeLessThanOrEqualTo(Date value) {
            addCriterion("add_time <=", value, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeIn(List<Date> values) {
            addCriterion("add_time in", values, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeNotIn(List<Date> values) {
            addCriterion("add_time not in", values, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeBetween(Date value1, Date value2) {
            addCriterion("add_time between", value1, value2, "addTime");
            return (Criteria) this;
        }

        public Criteria andAddTimeNotBetween(Date value1, Date value2) {
            addCriterion("add_time not between", value1, value2, "addTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andVistiTimesIsNull() {
            addCriterion("visti_times is null");
            return (Criteria) this;
        }

        public Criteria andVistiTimesIsNotNull() {
            addCriterion("visti_times is not null");
            return (Criteria) this;
        }

        public Criteria andVistiTimesEqualTo(Integer value) {
            addCriterion("visti_times =", value, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesNotEqualTo(Integer value) {
            addCriterion("visti_times <>", value, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesGreaterThan(Integer value) {
            addCriterion("visti_times >", value, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("visti_times >=", value, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesLessThan(Integer value) {
            addCriterion("visti_times <", value, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesLessThanOrEqualTo(Integer value) {
            addCriterion("visti_times <=", value, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesIn(List<Integer> values) {
            addCriterion("visti_times in", values, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesNotIn(List<Integer> values) {
            addCriterion("visti_times not in", values, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesBetween(Integer value1, Integer value2) {
            addCriterion("visti_times between", value1, value2, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andVistiTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("visti_times not between", value1, value2, "vistiTimes");
            return (Criteria) this;
        }

        public Criteria andSaleCountsIsNull() {
            addCriterion("sale_counts is null");
            return (Criteria) this;
        }

        public Criteria andSaleCountsIsNotNull() {
            addCriterion("sale_counts is not null");
            return (Criteria) this;
        }

        public Criteria andSaleCountsEqualTo(Integer value) {
            addCriterion("sale_counts =", value, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsNotEqualTo(Integer value) {
            addCriterion("sale_counts <>", value, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsGreaterThan(Integer value) {
            addCriterion("sale_counts >", value, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsGreaterThanOrEqualTo(Integer value) {
            addCriterion("sale_counts >=", value, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsLessThan(Integer value) {
            addCriterion("sale_counts <", value, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsLessThanOrEqualTo(Integer value) {
            addCriterion("sale_counts <=", value, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsIn(List<Integer> values) {
            addCriterion("sale_counts in", values, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsNotIn(List<Integer> values) {
            addCriterion("sale_counts not in", values, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsBetween(Integer value1, Integer value2) {
            addCriterion("sale_counts between", value1, value2, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andSaleCountsNotBetween(Integer value1, Integer value2) {
            addCriterion("sale_counts not between", value1, value2, "saleCounts");
            return (Criteria) this;
        }

        public Criteria andImageUrl1IsNull() {
            addCriterion("image_url1 is null");
            return (Criteria) this;
        }

        public Criteria andImageUrl1IsNotNull() {
            addCriterion("image_url1 is not null");
            return (Criteria) this;
        }

        public Criteria andImageUrl1EqualTo(String value) {
            addCriterion("image_url1 =", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1NotEqualTo(String value) {
            addCriterion("image_url1 <>", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1GreaterThan(String value) {
            addCriterion("image_url1 >", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1GreaterThanOrEqualTo(String value) {
            addCriterion("image_url1 >=", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1LessThan(String value) {
            addCriterion("image_url1 <", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1LessThanOrEqualTo(String value) {
            addCriterion("image_url1 <=", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1Like(String value) {
            addCriterion("image_url1 like", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1NotLike(String value) {
            addCriterion("image_url1 not like", value, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1In(List<String> values) {
            addCriterion("image_url1 in", values, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1NotIn(List<String> values) {
            addCriterion("image_url1 not in", values, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1Between(String value1, String value2) {
            addCriterion("image_url1 between", value1, value2, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl1NotBetween(String value1, String value2) {
            addCriterion("image_url1 not between", value1, value2, "imageUrl1");
            return (Criteria) this;
        }

        public Criteria andImageUrl2IsNull() {
            addCriterion("image_url2 is null");
            return (Criteria) this;
        }

        public Criteria andImageUrl2IsNotNull() {
            addCriterion("image_url2 is not null");
            return (Criteria) this;
        }

        public Criteria andImageUrl2EqualTo(String value) {
            addCriterion("image_url2 =", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2NotEqualTo(String value) {
            addCriterion("image_url2 <>", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2GreaterThan(String value) {
            addCriterion("image_url2 >", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2GreaterThanOrEqualTo(String value) {
            addCriterion("image_url2 >=", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2LessThan(String value) {
            addCriterion("image_url2 <", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2LessThanOrEqualTo(String value) {
            addCriterion("image_url2 <=", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2Like(String value) {
            addCriterion("image_url2 like", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2NotLike(String value) {
            addCriterion("image_url2 not like", value, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2In(List<String> values) {
            addCriterion("image_url2 in", values, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2NotIn(List<String> values) {
            addCriterion("image_url2 not in", values, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2Between(String value1, String value2) {
            addCriterion("image_url2 between", value1, value2, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl2NotBetween(String value1, String value2) {
            addCriterion("image_url2 not between", value1, value2, "imageUrl2");
            return (Criteria) this;
        }

        public Criteria andImageUrl3IsNull() {
            addCriterion("image_url3 is null");
            return (Criteria) this;
        }

        public Criteria andImageUrl3IsNotNull() {
            addCriterion("image_url3 is not null");
            return (Criteria) this;
        }

        public Criteria andImageUrl3EqualTo(String value) {
            addCriterion("image_url3 =", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3NotEqualTo(String value) {
            addCriterion("image_url3 <>", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3GreaterThan(String value) {
            addCriterion("image_url3 >", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3GreaterThanOrEqualTo(String value) {
            addCriterion("image_url3 >=", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3LessThan(String value) {
            addCriterion("image_url3 <", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3LessThanOrEqualTo(String value) {
            addCriterion("image_url3 <=", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3Like(String value) {
            addCriterion("image_url3 like", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3NotLike(String value) {
            addCriterion("image_url3 not like", value, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3In(List<String> values) {
            addCriterion("image_url3 in", values, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3NotIn(List<String> values) {
            addCriterion("image_url3 not in", values, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3Between(String value1, String value2) {
            addCriterion("image_url3 between", value1, value2, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl3NotBetween(String value1, String value2) {
            addCriterion("image_url3 not between", value1, value2, "imageUrl3");
            return (Criteria) this;
        }

        public Criteria andImageUrl4IsNull() {
            addCriterion("image_url4 is null");
            return (Criteria) this;
        }

        public Criteria andImageUrl4IsNotNull() {
            addCriterion("image_url4 is not null");
            return (Criteria) this;
        }

        public Criteria andImageUrl4EqualTo(String value) {
            addCriterion("image_url4 =", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4NotEqualTo(String value) {
            addCriterion("image_url4 <>", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4GreaterThan(String value) {
            addCriterion("image_url4 >", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4GreaterThanOrEqualTo(String value) {
            addCriterion("image_url4 >=", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4LessThan(String value) {
            addCriterion("image_url4 <", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4LessThanOrEqualTo(String value) {
            addCriterion("image_url4 <=", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4Like(String value) {
            addCriterion("image_url4 like", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4NotLike(String value) {
            addCriterion("image_url4 not like", value, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4In(List<String> values) {
            addCriterion("image_url4 in", values, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4NotIn(List<String> values) {
            addCriterion("image_url4 not in", values, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4Between(String value1, String value2) {
            addCriterion("image_url4 between", value1, value2, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl4NotBetween(String value1, String value2) {
            addCriterion("image_url4 not between", value1, value2, "imageUrl4");
            return (Criteria) this;
        }

        public Criteria andImageUrl5IsNull() {
            addCriterion("image_url5 is null");
            return (Criteria) this;
        }

        public Criteria andImageUrl5IsNotNull() {
            addCriterion("image_url5 is not null");
            return (Criteria) this;
        }

        public Criteria andImageUrl5EqualTo(String value) {
            addCriterion("image_url5 =", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5NotEqualTo(String value) {
            addCriterion("image_url5 <>", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5GreaterThan(String value) {
            addCriterion("image_url5 >", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5GreaterThanOrEqualTo(String value) {
            addCriterion("image_url5 >=", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5LessThan(String value) {
            addCriterion("image_url5 <", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5LessThanOrEqualTo(String value) {
            addCriterion("image_url5 <=", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5Like(String value) {
            addCriterion("image_url5 like", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5NotLike(String value) {
            addCriterion("image_url5 not like", value, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5In(List<String> values) {
            addCriterion("image_url5 in", values, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5NotIn(List<String> values) {
            addCriterion("image_url5 not in", values, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5Between(String value1, String value2) {
            addCriterion("image_url5 between", value1, value2, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andImageUrl5NotBetween(String value1, String value2) {
            addCriterion("image_url5 not between", value1, value2, "imageUrl5");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumIsNull() {
            addCriterion("min_buy_num is null");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumIsNotNull() {
            addCriterion("min_buy_num is not null");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumEqualTo(Integer value) {
            addCriterion("min_buy_num =", value, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumNotEqualTo(Integer value) {
            addCriterion("min_buy_num <>", value, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumGreaterThan(Integer value) {
            addCriterion("min_buy_num >", value, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("min_buy_num >=", value, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumLessThan(Integer value) {
            addCriterion("min_buy_num <", value, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumLessThanOrEqualTo(Integer value) {
            addCriterion("min_buy_num <=", value, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumIn(List<Integer> values) {
            addCriterion("min_buy_num in", values, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumNotIn(List<Integer> values) {
            addCriterion("min_buy_num not in", values, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumBetween(Integer value1, Integer value2) {
            addCriterion("min_buy_num between", value1, value2, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andMinBuyNumNotBetween(Integer value1, Integer value2) {
            addCriterion("min_buy_num not between", value1, value2, "minBuyNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumIsNull() {
            addCriterion("package_num is null");
            return (Criteria) this;
        }

        public Criteria andPackageNumIsNotNull() {
            addCriterion("package_num is not null");
            return (Criteria) this;
        }

        public Criteria andPackageNumEqualTo(Integer value) {
            addCriterion("package_num =", value, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumNotEqualTo(Integer value) {
            addCriterion("package_num <>", value, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumGreaterThan(Integer value) {
            addCriterion("package_num >", value, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("package_num >=", value, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumLessThan(Integer value) {
            addCriterion("package_num <", value, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumLessThanOrEqualTo(Integer value) {
            addCriterion("package_num <=", value, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumIn(List<Integer> values) {
            addCriterion("package_num in", values, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumNotIn(List<Integer> values) {
            addCriterion("package_num not in", values, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumBetween(Integer value1, Integer value2) {
            addCriterion("package_num between", value1, value2, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageNumNotBetween(Integer value1, Integer value2) {
            addCriterion("package_num not between", value1, value2, "packageNum");
            return (Criteria) this;
        }

        public Criteria andPackageInfoIsNull() {
            addCriterion("package_info is null");
            return (Criteria) this;
        }

        public Criteria andPackageInfoIsNotNull() {
            addCriterion("package_info is not null");
            return (Criteria) this;
        }

        public Criteria andPackageInfoEqualTo(String value) {
            addCriterion("package_info =", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoNotEqualTo(String value) {
            addCriterion("package_info <>", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoGreaterThan(String value) {
            addCriterion("package_info >", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoGreaterThanOrEqualTo(String value) {
            addCriterion("package_info >=", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoLessThan(String value) {
            addCriterion("package_info <", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoLessThanOrEqualTo(String value) {
            addCriterion("package_info <=", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoLike(String value) {
            addCriterion("package_info like", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoNotLike(String value) {
            addCriterion("package_info not like", value, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoIn(List<String> values) {
            addCriterion("package_info in", values, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoNotIn(List<String> values) {
            addCriterion("package_info not in", values, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoBetween(String value1, String value2) {
            addCriterion("package_info between", value1, value2, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andPackageInfoNotBetween(String value1, String value2) {
            addCriterion("package_info not between", value1, value2, "packageInfo");
            return (Criteria) this;
        }

        public Criteria andSpecificationIsNull() {
            addCriterion("specification is null");
            return (Criteria) this;
        }

        public Criteria andSpecificationIsNotNull() {
            addCriterion("specification is not null");
            return (Criteria) this;
        }

        public Criteria andSpecificationEqualTo(String value) {
            addCriterion("specification =", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationNotEqualTo(String value) {
            addCriterion("specification <>", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationGreaterThan(String value) {
            addCriterion("specification >", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationGreaterThanOrEqualTo(String value) {
            addCriterion("specification >=", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationLessThan(String value) {
            addCriterion("specification <", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationLessThanOrEqualTo(String value) {
            addCriterion("specification <=", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationLike(String value) {
            addCriterion("specification like", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationNotLike(String value) {
            addCriterion("specification not like", value, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationIn(List<String> values) {
            addCriterion("specification in", values, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationNotIn(List<String> values) {
            addCriterion("specification not in", values, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationBetween(String value1, String value2) {
            addCriterion("specification between", value1, value2, "specification");
            return (Criteria) this;
        }

        public Criteria andSpecificationNotBetween(String value1, String value2) {
            addCriterion("specification not between", value1, value2, "specification");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}